The present invention relates to a media transfer protocol (MTP) of Microsoft Corporation, and more particularly, to a method for reactivating at least one MTP-compatible device when an unrecoverable error occurs, and an associated host.
As announced by Microsoft Corporation, an MTP is a protocol for intelligent storage devices, based on a Picture Transfer Protocol (PTP), which is well-known and is compatible with the PTP.
According to public information regarding MTP implementation details released by Microsoft Corporation on the Internet, the MTP enables: metadata-based enumeration; object transfer; command and control; and eventing. In addition, the MTP is optimized for: very large storages; multifunction devices; and high-power initiators and low-power responders. Additionally, the MTP is a key part of WMDRM10-PD and PlaysForSure. Regarding WMDRM10-PD and PlaysForSure, please refer to specifications released by Microsoft Corporation for related information.
For the readers' convenience, some MTP fundamentals cited by the public information are further listed below. The MTP is a binary protocol, which utilizes an initiator-responder model. For example, an initiator initiates and a responder must respond, where the initiator builds a model of responder contents. In addition, the MTP is transport-independent. For example, it can be implemented over USB or IP. In addition, the MTP is multi-session aware, where a device UI is a session. Additionally, the MTP is extensible.
As cited by the public information mentioned above, device contents are exposed as objects, where they are identified by session-based 32-bit object handles. In addition, a device is described by device properties, where descriptions and control are provided. In addition, objects are described by object properties, where descriptions and constraints are provided. Additionally, there are device-initiated events, where multi-session support is provided. Please refer to MTP specifications released by Microsoft Corporation for more details.
According to the related art, most conventional devices complying with MTP specifications can support only a single session ID. Thus, a conventional host can open only one session for each conventional device from the moment when the conventional device is connected to the conventional host until the moment when the conventional device is disconnected from the conventional host.
In a worst situation, when an unrecoverable error occurs, the conventional host cannot reactivate the conventional device by simply sending a hardware reset signal to the conventional device since an opened session already exists and there is no more session ID available. As a result, according to the related art, disconnecting the conventional device from the conventional host and then reconnecting the conventional device to the conventional host is the only solution to the problem, causing great inconvenience to end users.